The invention relates to a method and apparatus for determining the position of a Global Navigation Satellite System (GNSS) receiver, and in particular to determining the position of the receiver when it has not been possible to decode the part of the GNSS navigation message containing the transmission time of the signal.
The Global Positioning System (GPS) is a navigation system in which a receiver determines its position by precisely measuring the arrival time of signalling events received from multiple satellites. Each satellite transmits a navigation message containing the precise time when the message was transmitted and ephemeris information. This includes details about the satellite's orbit and corrections for the satellite's own clock, in comparison with a universal or absolute time such as GPS time. The ephemeris and clock correction parameters may collectively be known as ephemeris information.
GPS signals are formed of a navigation message binary phase shift modulated (BPSK) onto a direct sequence spread spectrum signal. The spread spectrum signal comprises a unique pseudo-noise (PN) code that identifies the satellite. For civil application GPS signals transmitted using the L1 frequency, this code is known as the C/A code. The C/A code has a sequence length of 1023 chips and it is spread with a 1.023 MHz chipping rate. The code sequence therefore repeats every millisecond. The code sequence has an identified start instant when the two code generators in the satellite just transition to the all state. This instant is known as the code epoch. After various transport delays in the satellite, the code epoch is broadcast. This event is called a signalling event and can be recognised, in suitably adapted receivers, through a process of aligning a replica code with the code received from each satellite.
The navigation message has a lower data rate of 50 bits per second and its start is synchronised with the start of the C/A code sequence. Each bit of the navigation message lasts for 20 milliseconds and thus incorporates 20 repetitions of the C/A code. The navigation message is constructed from a 1500-bit frame consisting of five 300-bit sub-frames. Each sub-frame lasts for 6 seconds. The satellite transmits the navigation message and C/A code using a carrier frequency that is an integer multiple of 10.23 MHz (for the L1 carrier, the multiple is 154).
In addition to the time and ephemeris information, the data message also contains the satellite constellation almanac, parameters representing the ionospheric and tropospheric delay, health parameters and other information used by some receivers. There are 25 different frames of data broadcast from each satellite. Each frame contains identical information (apart from time) in sub-frames 1-3 inclusive but cycles through a pre-assigned sequence of data in sub-frames 4 and 5, which contain almanac and other information.
As mentioned above, a GPS receiver may determine the time-of-arrival of a signalling event through a process of aligning a replica code with the code received from each satellite. The receiver may also use the Time of Week (TOW) information contained in the navigation message to determine the time when the signalling event was transmitted. From this, the receiver can determine the transit time for the signalling event (from which it can determine the distance between it and the satellite), together with the position of the satellite at the time when the signalling event was transmitted (using the ephemeris information). The receiver can then calculate its own position. Theoretically, the position of the GPS receiver can be determined using signals from three satellites, providing the receiver has a precise time or knowledge of part of the positions, such as altitude. However, in practice GPS receivers use signals from four or more satellites to determine an accurate three-dimensional location solution because an bias between the receiver clock and GPS time introduces an additional unknown into the calculation.
If the satellite signal reception is poor (commonly known as weak signal conditions), or if the receiver only receives a short burst of the signal, the receiver may not be able to decode the TOW information. Without this information, the GPS receiver may be unable to determine the distance between it and the satellite with sufficient accuracy because the receiver will not know the time when the signalling event was transmitted. Under weak signal conditions or briefly glimpsed signals, the receiver may also be unable to recognise the start of a sub-frame since it may not be able to decode the TLM.
A receiver that has been unable to decode the TOW information in the navigation message may nonetheless be able to deduce some timing information even under weak signal conditions or from briefly-glimpsed signals. For example, the receiver may be able to determine a time shift between the satellite signal's spreading (PN) code and a locally generated version of the same, e.g. by correlating the received signal with a locally generated replica of the PN code or by using an equivalent signal processing technique. This time shift represents at least part of the transit time for the satellite signal. However, since both the PN code in the signal and the locally generated replica code are of finite length in space (known as the code wavelength), the correlation operation can only identify a part of the total time shift. This part of the total time shift represents the fractional part of the signal transit time between satellite and user after an integer number of code repetition intervals have been subtracted. This leaves unknown the integer number of code repetition intervals the signal took to travel between the satellite and the receiver.
In order to compute its position accurately, the receiver also needs to be able to resolve discrepancies between the various clocks in the system. GPS time is defined by an ensemble of clocks generally located at the US Naval Observatory in Washington. Each satellite has its own operating clock (usually one of three on board the space vehicle), which is approximately synchronised with GPS time. In practice, however, the satellite clock is bias from GPS time by a small amount. The receiver clock is also likely to be bias from GPS time, at least prior to an initial location solution. Uncorrected, these clock biases introduce significant errors into the location calculation.
“GPS Receiver Structures for the Urban Canyon” by Peterson et al. presents a method for computing the position of a GPS receiver in a deep urban canyon, in which the receiver may obtain brief glimpses of satellites but rarely sees three or more satellites simultaneously. The method addresses the problem of having an unknown common system time by expanding the location calculation to encompass an additional satellite range measurement and an additional unknown parameter termed “coarse time”. The Peterson paper thus proposes a solution in which signals from five satellites are required for a 3D-location solution.
“Fast Acquisition Techniques for GPS Receivers” by Lannelongue et al. also presents a method for computing the position of a GPS receiver in which the common system time is unknown.
The integer millisecond ambiguity is also addressed by U.S. Pat. No. 6,417,801, which describes a way of estimating the integer milliseconds by calculating the geometric pseudo-range of the receiver to the satellite. The geometric pseudo-range is calculated using an estimated position of the GPS receiver and the position of the satellite at an estimated GPS time. U.S. Pat. No. 6,417,801 estimates the number of integer milliseconds that the signal took to travel between the satellite and the GPS receiver from the estimated pseudo-range and adds this to a measured, sub-millisecond pseudo-range to obtain a ‘full’ pseudo-range. The full pseudo-ranges from five satellites are then used to calculate the location of the GPS receiver. This technique is also described in “A-GPS: Assisted GPS, GNSS and SBAS 72” by Frank Van Diggelen (see chapter 4).
Mathematical techniques may be used to change the unknowns output by the location calculation. For example, U.S. Pat. No. 7,064,709 explains that calculating the integer number of milliseconds using estimated pseudo-ranges is not always sufficiently accurate and instead proposes a method whereby a common transit delay, represented as an number of integer milliseconds, is inserted as one of the unknowns to be determined as part of the location calculation. U.S. Pat. No. 7,064,709 also proposes that differences may be used to create four equations and four unknowns from the five equations using satellite measurements.
U.S. Pat. No. 6,191,731 also describes making five range measurements to five satellites and solving the five resulting equations by weighting and subtracting one from the four others in order to eliminate a one of the unknown terms. This is a purely mathematical procedure which, in this example, cancels the user clock error term from the five linearized position equations.
These techniques are similar to the differencing methods used in some land survey implementations in which GPS time is known. Signals from two different satellites are differenced at one receiver and that difference is then subtracted from a similar difference calculated at another receiver. This double-difference technique allows unknowns such as the satellite clock error and the receiver clock error to be eliminated from the calculation. These techniques are generally operative only within a zone where the location solution converges with a low error.
There is a need for an improved method of calculating the position of a GPS receiver when the time at which a GPS signal was transmitted by a satellite is unknown.